package com.aeon.cloneoschina.common;

import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import com.aeon.cloneoschina.AppManager;
import com.aeon.cloneoschina.Main;
import com.aeon.cloneoschina.R;

import com.aeon.cloneoschina.bean.News;
import com.aeon.cloneoschina.bean.Notice;

import com.aeon.cloneoschina.ui.BaseActivity;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Handler;
import android.os.Message;
import android.text.Editable;
import android.text.Html;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextWatcher;
import android.text.method.LinkMovementMethod;
import android.text.style.AbsoluteSizeSpan;
import android.text.style.ForegroundColorSpan;
import android.text.style.ImageSpan;
import android.text.style.StyleSpan;
import android.text.style.URLSpan;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

/**
 * 应用程序UI工具包：封装UI相关的一些操�?
 * 
 * @author liux (http://my.oschina.net/liux)
 * @version 1.0
 * @created 2012-3-21
 */
public class UIHelper {

	public final static int LISTVIEW_ACTION_INIT = 0x01;
	public final static int LISTVIEW_ACTION_REFRESH = 0x02;
	public final static int LISTVIEW_ACTION_SCROLL = 0x03;
	public final static int LISTVIEW_ACTION_CHANGE_CATALOG = 0x04;

	public final static int LISTVIEW_DATA_MORE = 0x01;
	public final static int LISTVIEW_DATA_LOADING = 0x02;
	public final static int LISTVIEW_DATA_FULL = 0x03;
	public final static int LISTVIEW_DATA_EMPTY = 0x04;

	public final static int LISTVIEW_DATATYPE_NEWS = 0x01;
	public final static int LISTVIEW_DATATYPE_BLOG = 0x02;
	public final static int LISTVIEW_DATATYPE_POST = 0x03;
	public final static int LISTVIEW_DATATYPE_TWEET = 0x04;
	public final static int LISTVIEW_DATATYPE_ACTIVE = 0x05;
	public final static int LISTVIEW_DATATYPE_MESSAGE = 0x06;
	public final static int LISTVIEW_DATATYPE_COMMENT = 0x07;

	public final static int REQUEST_CODE_FOR_RESULT = 0x01;
	public final static int REQUEST_CODE_FOR_REPLY = 0x02;

	/** 表情图片匹配 */
	private static Pattern facePattern = Pattern
			.compile("\\[{1}([0-9]\\d*)\\]{1}");

	/** 全局web样式 */
	public final static String WEB_STYLE = "<style>* {font-size:16px;line-height:20px;} p {color:#333;} a {color:#3E62A6;} img {max-width:310px;} "
			+ "img.alignleft {float:left;max-width:120px;margin:0 10px 5px 0;border:1px solid #ccc;background:#fff;padding:2px;} "
			+ "pre {font-size:9pt;line-height:12pt;font-family:Courier New,Arial;border:1px solid #ddd;border-left:5px solid #6CE26C;background:#f6f6f6;padding:5px;} "
			+ "a.tag {font-size:15px;text-decoration:none;background-color:#bbd6f3;border-bottom:2px solid #3E6D8E;border-right:2px solid #7F9FB6;color:#284a7b;margin:2px 2px 2px 0;padding:2px 4px;white-space:nowrap;}</style>";

	/**
	 * 显示首页
	 * 
	 * @param activity
	 */
	public static void showHome(Activity activity) {
		Intent intent = new Intent(activity, Main.class);
		activity.startActivity(intent);
		activity.finish();
	}

	/**
	 * 显示登录页面
	 * 
	 * @param activity
	 */
//	public static void showLoginDialog(Context context) {
//		Intent intent = new Intent(context, LoginDialog.class);
//		if (context instanceof Main)
//			intent.putExtra("LOGINTYPE", LoginDialog.LOGIN_MAIN);
//		else if (context instanceof Setting)
//			intent.putExtra("LOGINTYPE", LoginDialog.LOGIN_SETTING);
//		else
//			intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
//		context.startActivity(intent);
//	}

	/**
	 * 显示新闻详情
	 * 
	 * @param context
	 * @param newsId
//	 */
//	public static void showNewsDetail(Context context, int newsId) {
//		Intent intent = new Intent(context, NewsDetail.class);
//		intent.putExtra("news_id", newsId);
//		context.startActivity(intent);
//	}

	/**
	 * 显示帖子详情
	 * 
	 * @param context
	 * @param postId
	 */
//	public static void showQuestionDetail(Context context, int postId) {
//		Intent intent = new Intent(context, QuestionDetail.class);
//		intent.putExtra("post_id", postId);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示相关Tag帖子列表
//	 * 
//	 * @param context
//	 * @param tag
//	 */
//	public static void showQuestionListByTag(Context context, String tag) {
//		Intent intent = new Intent(context, QuestionTag.class);
//		intent.putExtra("post_tag", tag);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示我要提问页面
//	 * 
//	 * @param context
//	 */
//	public static void showQuestionPub(Context context) {
//		Intent intent = new Intent(context, QuestionPub.class);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示动弹详情及评�?
//	 * 
//	 * @param context
//	 * @param tweetId
//	 */
//	public static void showTweetDetail(Context context, int tweetId) {
//		Intent intent = new Intent(context, TweetDetail.class);
//		intent.putExtra("tweet_id", tweetId);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示动弹�?��页面
//	 * 
//	 * @param context
//	 */
//	public static void showTweetPub(Activity context) {
//		Intent intent = new Intent(context, TweetPub.class);
//		context.startActivityForResult(intent, REQUEST_CODE_FOR_RESULT);
//	}
//
//	public static void showTweetPub(Activity context, String atme, int atuid) {
//		Intent intent = new Intent(context, TweetPub.class);
//		intent.putExtra("at_me", atme);
//		intent.putExtra("at_uid", atuid);
//		context.startActivityForResult(intent, REQUEST_CODE_FOR_RESULT);
//	}
//
//	/**
//	 * 显示博客详情
//	 * 
//	 * @param context
//	 * @param blogId
//	 */
//	public static void showBlogDetail(Context context, int blogId) {
//		Intent intent = new Intent(context, BlogDetail.class);
//		intent.putExtra("blog_id", blogId);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示软件详情
//	 * 
//	 * @param context
//	 * @param ident
//	 */
//	public static void showSoftwareDetail(Context context, String ident) {
//		Intent intent = new Intent(context, SoftwareDetail.class);
//		intent.putExtra("ident", ident);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 新闻超链接点击跳�?
//	 * 
//	 * @param context
//	 * @param newsId
//	 * @param newsType
//	 * @param objId
//	 */
//	public static void showNewsRedirect(Context context, News news) {
//		String url = news.getUrl();
//		// url为空-旧方�?
//		if (StringUtils.isEmpty(url)) {
//			int newsId = news.getId();
//			int newsType = news.getNewType().type;
//			String objId = news.getNewType().attachment;
//			switch (newsType) {
//			case News.NEWSTYPE_NEWS:
//				showNewsDetail(context, newsId);
//				break;
//			case News.NEWSTYPE_SOFTWARE:
//				showSoftwareDetail(context, objId);
//				break;
//			case News.NEWSTYPE_POST:
//				showQuestionDetail(context, StringUtils.toInt(objId));
//				break;
//			case News.NEWSTYPE_BLOG:
//				showBlogDetail(context, StringUtils.toInt(objId));
//				break;
//			}
//		} else {
//			showUrlRedirect(context, url);
//		}
//	}
//
//	/**
//	 * 动�?点击跳转到相关新闻�?帖子�?
//	 * 
//	 * @param context
//	 * @param id
//	 * @param catalog
//	 *            0其他 1新闻 2帖子 3动弹 4博客
//	 */
//	public static void showActiveRedirect(Context context, Active active) {
//		String url = active.getUrl();
//		// url为空-旧方�?
//		if (StringUtils.isEmpty(url)) {
//			int id = active.getObjectId();
//			int catalog = active.getActiveType();
//			switch (catalog) {
//			case Active.CATALOG_OTHER:
//				// 其他-无跳�?
//				break;
//			case Active.CATALOG_NEWS:
//				showNewsDetail(context, id);
//				break;
//			case Active.CATALOG_POST:
//				showQuestionDetail(context, id);
//				break;
//			case Active.CATALOG_TWEET:
//				showTweetDetail(context, id);
//				break;
//			case Active.CATALOG_BLOG:
//				showBlogDetail(context, id);
//				break;
//			}
//		} else {
//			showUrlRedirect(context, url);
//		}
//	}
//
//	/**
//	 * 显示评论发表页面
//	 * 
//	 * @param context
//	 * @param id
//	 *            新闻|帖子|动弹的id
//	 * @param catalog
//	 *            1新闻 2帖子 3动弹 4动�?
//	 */
//	public static void showCommentPub(Activity context, int id, int catalog) {
//		Intent intent = new Intent(context, CommentPub.class);
//		intent.putExtra("id", id);
//		intent.putExtra("catalog", catalog);
//		context.startActivityForResult(intent, REQUEST_CODE_FOR_RESULT);
//	}
//
//	/**
//	 * 显示评论回复页面
//	 * 
//	 * @param context
//	 * @param id
//	 * @param catalog
//	 * @param replyid
//	 * @param authorid
//	 */
//	public static void showCommentReply(Activity context, int id, int catalog,
//			int replyid, int authorid, String author, String content) {
//		Intent intent = new Intent(context, CommentPub.class);
//		intent.putExtra("id", id);
//		intent.putExtra("catalog", catalog);
//		intent.putExtra("reply_id", replyid);
//		intent.putExtra("author_id", authorid);
//		intent.putExtra("author", author);
//		intent.putExtra("content", content);
//		if (catalog == CommentList.CATALOG_POST)
//			context.startActivityForResult(intent, REQUEST_CODE_FOR_REPLY);
//		else
//			context.startActivityForResult(intent, REQUEST_CODE_FOR_RESULT);
//	}
//
//	/**
//	 * 显示留言对话页面
//	 * 
//	 * @param context
//	 * @param catalog
//	 * @param friendid
//	 */
//	public static void showMessageDetail(Context context, int friendid,
//			String friendname) {
//		Intent intent = new Intent(context, MessageDetail.class);
//		intent.putExtra("friend_name", friendname);
//		intent.putExtra("friend_id", friendid);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 显示留言回复界面
//	 * 
//	 * @param context
//	 * @param friendId
//	 *            对方id
//	 * @param friendName
//	 *            对方名称
//	 */
//	public static void showMessagePub(Activity context, int friendId,
//			String friendName) {
//		Intent intent = new Intent();
//		intent.putExtra("user_id",
//				((AppContext) context.getApplication()).getLoginUid());
//		intent.putExtra("friend_id", friendId);
//		intent.putExtra("friend_name", friendName);
//		intent.setClass(context, MessagePub.class);
//		context.startActivityForResult(intent, REQUEST_CODE_FOR_RESULT);
//	}
//
//	/**
//	 * 显示转发留言界面
//	 * 
//	 * @param context
//	 * @param friendName
//	 *            对方名称
//	 * @param messageContent
//	 *            留言内容
//	 */
//	public static void showMessageForward(Activity context, String friendName,
//			String messageContent) {
//		Intent intent = new Intent();
//		intent.putExtra("user_id",
//				((AppContext) context.getApplication()).getLoginUid());
//		intent.putExtra("friend_name", friendName);
//		intent.putExtra("message_content", messageContent);
//		intent.setClass(context, MessageForward.class);
//		context.startActivity(intent);
//	}
//
//	/**
//	 * 调用系统安装了的应用分享
//	 * 
//	 * @param context
//	 * @param title
//	 * @param url
//	 */
//	public static void showShareMore(Activity context, final String title,
//			final String url) {
//		Intent intent = new Intent(Intent.ACTION_SEND);
//		intent.setType("text/plain");
//		intent.putExtra(Intent.EXTRA_SUBJECT, "分享�? + title);
//		intent.putExtra(Intent.EXTRA_TEXT, title + " " + url);
//		context.startActivity(Intent.createChooser(intent, "选择分享"));
//	}
//
//	/**
//	 * 分享�?新浪微博'�?腾讯微博'的对话框
//	 * 
//	 * @param context
//	 *            当前Activity
//	 * @param title
//	 *            分享的标�?
//	 * @param url
//	 *            分享的链�?
//	 */
//	public static void showShareDialog(final Activity context,
//			final String title, final String url) {
//		AlertDialog.Builder builder = new AlertDialog.Builder(context);
//		builder.setIcon(android.R.drawable.btn_star);
//		builder.setTitle(context.getString(R.string.share));
//		builder.setItems(R.array.app_share_items,
//				new DialogInterface.OnClickListener() {
//					AppConfig cfgHelper = AppConfig.getAppConfig(context);
//					AccessInfo access = cfgHelper.getAccessInfo();
//
//					public void onClick(DialogInterface arg0, int arg1) {
//						switch (arg1) {
//						case 0:// 新浪微博
//								// 分享的内�?
//							final String shareMessage = title + " " + url;
//							// 初始化微�?
//							if (SinaWeiboHelper.isWeiboNull()) {
//								SinaWeiboHelper.initWeibo();
//							}
//							// 判断之前是否登陆�?
//							if (access != null) {
//								SinaWeiboHelper.progressDialog = new ProgressDialog(
//										context);
//								SinaWeiboHelper.progressDialog
//										.setProgressStyle(ProgressDialog.STYLE_SPINNER);
//								SinaWeiboHelper.progressDialog
//										.setMessage(context
//												.getString(R.string.sharing));
//								SinaWeiboHelper.progressDialog
//										.setCancelable(true);
//								SinaWeiboHelper.progressDialog.show();
//								new Thread() {
//									public void run() {
//										SinaWeiboHelper.setAccessToken(
//												access.getAccessToken(),
//												access.getAccessSecret(),
//												access.getExpiresIn());
//										SinaWeiboHelper.shareMessage(context,
//												shareMessage);
//									}
//								}.start();
//							} else {
//								SinaWeiboHelper
//										.authorize(context, shareMessage);
//							}
//							break;
//						case 1:// 腾讯微博
//							QQWeiboHelper.shareToQQ(context, title, url);
//							break;
//						case 2:// 截图分享
//							addScreenShot(context, new OnScreenShotListener() {
//
//								@SuppressLint("NewApi")
//								public void onComplete(Bitmap bm) {
//									Intent intent = new Intent(context,ScreenShotShare.class);
//									intent.putExtra("title", title);
//									intent.putExtra("url", url);
//									intent.putExtra("cut_image_tmp_path",ScreenShotView.TEMP_SHARE_FILE_NAME);
//									try {
//										ImageUtils.saveImageToSD(context,ScreenShotView.TEMP_SHARE_FILE_NAME,bm, 100);
//									} catch (IOException e) {
//										e.printStackTrace();
//									}
//									context.startActivity(intent);
//								}
//							});
//							break;
//						case 3:// 更多
//							showShareMore(context, title, url);
//							break;
//						}
//					}
//				});
//		builder.create().show();
//	}
//
//	/**
//	 * 收藏操作选择�?
//	 * 
//	 * @param context
//	 * @param thread
//	 */
//	public static void showFavoriteOptionDialog(final Activity context,
//			final Thread thread) {
//		AlertDialog.Builder builder = new AlertDialog.Builder(context);
//		builder.setIcon(R.drawable.ic_dialog_menu);
//		builder.setTitle(context.getString(R.string.select));
//		builder.setItems(R.array.favorite_options,
//				new DialogInterface.OnClickListener() {
//					public void onClick(DialogInterface arg0, int arg1) {
//						switch (arg1) {
//						case 0:// 删除
//							thread.start();
//							break;
//						}
//					}
//				});
//		builder.create().show();
//	}
//
//	/**
//	 * 消息列表操作选择�?
//	 * 
//	 * @param context
//	 * @param msg
//	 * @param thread
//	 */
//	public static void showMessageListOptionDialog(final Activity context,
//			final Messages msg, final Thread thread) {
//		AlertDialog.Builder builder = new AlertDialog.Builder(context);
//		builder.setIcon(R.drawable.ic_dialog_menu);
//		builder.setTitle(context.getString(R.string.select));
//		builder.setItems(R.array.message_list_options,
//				new DialogInterface.OnClickListener() {
//					public void onClick(DialogInterface arg0, int arg1) {
//						switch (arg1) {
//						case 0:// 回复
//							showMessagePub(context, msg.getFriendId(),
//									msg.getFriendName());
//							break;
//						case 1:// 转发
//							showMessageForward(context, msg.getFriendName(),
//									msg.getContent());
//							break;
//						case 2:// 删除
//							thread.start();
//							break;
//						}
//					}
//				});
//		builder.create().show();
//	}

	/**
	 * 消息详情操作选择�?
	 * 
	 * @param context
	 * @param msg
	 * @param thread
	 */
	
}
